package com.vegetable.common.annotation;

import java.lang.annotation.*;

/**
 * 销售数据权限控制注解
 * 用于标记需要进行销售数据权限控制的方法，支持PO对象参数
 *
 * @author Qoder
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SalesDataPermission {
    
    /**
     * 数据权限类型
     * CUSTOMER: 客户数据权限
     */
    enum PermissionType {
        CUSTOMER
    }
    
    /**
     * 权限类型
     */
    PermissionType type() default PermissionType.CUSTOMER;
    
    /**
     * 需要过滤的参数类型
     * 对应方法参数中的PO对象类型
     */
    Class<?> filterParam() default Object.class;
}